_e_q_u_a_t_i_o_n Specifies a four-element array containing the plane equation
coefficients of a reference plane which will be used to
generate depth values for pixel fragments. The coefficients of
x, y, and z are the first three elements of the array,
respectively, and the constant term is the fourth. The plane
equation is specified in object coordinates. The default is
equivalent to (0,0,1,0) in window coordinates.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee extension allows a group of coplanar primitives
to be rendered without depth-buffering artifacts. This is accomplished
by generating depth values for all pixel fragments from a single
``reference plane'' rather than from the primitives themselves. This
ensures that all the primitives in the group will have exactly the same
depth value at any given sample point, no matter what imprecision may
exist in the original specification of the primitives or in the GL's
coordinate transformation process. As a result, depth tests for equality
(GGGGLLLL____EEEEQQQQUUUUAAAALLLL, GGGGLLLL____LLLLEEEEQQQQUUUUAAAALLLL, GGGGLLLL____GGGGEEEEQQQQUUUUAAAALLLL) may be used with impunity.
The process of generating depth values from the reference plane is
enabled by executing ffffggggllllEEEEnnnnaaaabbbblllleeee with argument GGGGLLLL____RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEE____PPPPLLLLAAAANNNNEEEE____SSSSGGGGIIIIXXXX.
The plane equation of the reference plane is specified with
_e_q_u_a_t_i_o_n must be an array with four elements: the x coefficient, y
coefficient, z coefficient, and constant term of the reference plane's
equation, in that order. The plane equation is specified in object
coordinates, and transformed by the transpose-adjoint of the object-to-
clip transformation in order to derive a plane equation in clip
coordinates. The clip coordinates are transformed to window coordinates
when the reference plane is enabled. Let the window-coordinate version
of the reference plane equation be ax+by+cz+d=0. If the reference plane
is enabled, and a pixel fragment has window coordinates (x,y), then its z
coordinate will become -(d+ax+by)/c.
If the generated z coordinate is outside the valid depth buffer range,
then the resulting depth value is undefined. If the reference plane does
not intersect the viewing frustum, it is as if the default coefficients
(0,0,1,0) (in window coordinates) are used.
NNNNOOOOTTTTEEEESSSS
The reference plane coefficients specified by ffffggggllllRRRReeeeffffeeeerrrreeeennnncccceeeePPPPllllaaaannnneeeeSSSSGGGGIIIIXXXX are
in object coordinates, while the coefficients returned by ffffggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv
with argument GGGGLLLL____RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEE____PPPPLLLLAAAANNNNEEEE____EEEEQQQQUUUUAAAATTTTIIIIOOOONNNN____SSSSGGGGIIIIXXXX are in clip coordinates.
ffffggggllllRRRReeeeffffeeeerrrreeeennnncccceeeePPPPllllaaaannnneeeeSSSSGGGGIIIIXXXX is part of the SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee extension, not
part of the core GL command set. If GGGGLLLL____SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee is included
in the string returned by ffffggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg when called with argument
GGGGLLLL____EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS, extension SSSSGGGGIIIIXXXX____rrrreeeeffffeeeerrrreeeennnncccceeee____ppppllllaaaannnneeee is supported by the
connection. See ffffggggllllIIIInnnnttttrrrroooo for more information about using extensions.
EEEERRRRRRRROOOORRRRSSSS
GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ffffggggllllRRRReeeeffffeeeerrrreeeennnncccceeeePPPPllllaaaannnneeeeSSSSGGGGIIIIXXXX is executed
between the execution of ffffggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of
ffffggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv with argument GGGGLLLL____RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEE____PPPPLLLLAAAANNNNEEEE____EEEEQQQQUUUUAAAATTTTIIIIOOOONNNN____SSSSGGGGIIIIXXXX